<!--
 * @LastEditors: 七七
 * @Date: 2023-01-10 19:30:41
-->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>函数参数</title>
</head>

<body>
  <script>
    // 定义一个用来求两个和的参数
    // 声明形参就相当于在函数内部声明了对应的变量，但是并不赋值
    function sum(a, b) {
      console.log(a, b);
      console.log(a + b); //3
      // return a + b;
    }
    // 调用函数时，可以指定实参，实参将会赋值给函数中对应的形参
    sum(1, 2);
    // 调用函数时解析器不会检查实参的类型，所有要注意，是否可能会接收到非法的参数，如果有可能则需要对参数进行类型的检查
    sum(1, 'hello') //1hello
    sum(true, false) //1
    // 调用函数时，解析器也不会检查实参的数量
    // 多余的实参不会被赋值
    // 实参少于形参，多出的形参为undefined
    sum(1, 2, 3, 4) //3
    sum(1) //NaN 1+undefined
  </script>
</body>

</html>